#ifndef __CPU_H__
#define __CPU_H__
#include "basictype.h"

#define FCLK 400000000 //400MHz
#define HCLK (FCLK/4) //100MHz
#define PCLK (FCLK/8) // 50MHz
#define XTAL_CLK 12000000 //12MHz
#define UCLK 48000000 //48MHz


typedef struct ProcessorInfo{
    UINT32 implementer;
    UINT32 specifyRevison;
    UINT32 architecture;
    UINT32 partNumber;
    UINT32 layoutRevision;
}ProcessorInfo;

// typedef struct CacheInfo{
//     UINT32 dataCacheSize;
//     UINT32 instructionCacheSize;
//     UINT32 cacheType;//1---united cache,0---seperate cache
// }CacheInfo;

// CPU必须处于非用户或系统模式才能获取这些信息
extern void cpu_getProcessorInfo(ProcessorInfo *pInfo);

extern void CP15_EnableICache(void);
#endif
